
#ifndef _LASHEADER_H_
#define _LASHEADER_H_

#include <guiddef.h>

#include "LasReaderExport.h"

class LASREADER_API CLasHeader
{
public:
	CLasHeader(void);
	~CLasHeader(void);
public:
	void ReadHeader(const void *pvBuf);
	int GetDataOffset() const;
	int GetPointType() const;
	int GetPointRecordLength() const;
	int GetNumberOfPointRecords() const;
	double GetXScaleFactor() const;
	double GetYScaleFactor() const;
	double GetZScaleFactor() const;
	double GetXOffset() const;
	double GetYOffset() const;
	double GetZOffset() const;
private:
	char m_sFileSignature[4];
	unsigned long m_uiReserved;
	GUID m_GUIDData;
	unsigned char m_ubVersionMajor;
	unsigned char m_ubVersionMinor;
	char m_sSystemIdentifier[32];
	char m_sGenerationSoftware[32];
	unsigned short m_wFlightDataJulian;
	unsigned short m_wYear;
	unsigned short m_wHeaderSize;
	unsigned long m_uiOffsetToData;
	unsigned long m_uiNumberOfVariableLengthRecords;
	unsigned char m_ubPointDataFormatID;
	unsigned short m_wPointDataRecordLength;
	unsigned long m_uiNumberOfPointRecords;
	unsigned long m_uiNumberOfPointsByReturn[5];
	double m_dXScaleFactor;
	double m_dYScaleFactor;
	double m_dZScaleFactor;
	double m_dXOffset;
	double m_dYOffset;
	double m_dZOffset;
	double m_dMaxX;
	double m_dMinX;
	double m_dMaxY;
	double m_dMinY;
	double m_dMaxZ;
	double m_dMinZ;

};

#endif
